import request from '@/config/axios'

// 用户留存率统计 VO
export interface UserRetentionStatsVO {
  id: number // 主键ID
  userId: number // 用户ID
  username: string // 用户名
  userType: number // 用户类型：1-管理员用户，2-会员用户
  codeUsageDate: Date // 兑换码使用日期
  codeId: number // 兑换码ID
  code: string // 兑换码
  usageLogId: number // 使用记录ID，关联ai_user_assets_code_usage_log.id
  day3Retention: boolean // 3日留存：0-未留存，1-留存，NULL-未计算
  day3LoginDate: Date // 第3日登录时间
  day3CalculatedDate: Date // 3日留存计算时间
  day7Retention: boolean // 7日留存：0-未留存，1-留存，NULL-未计算
  day7LoginDate: Date // 第7日登录时间
  day7CalculatedDate: Date // 7日留存计算时间
  day15Retention: boolean // 15日留存：0-未留存，1-留存，NULL-未计算
  day15LoginDate: Date // 第15日登录时间
  day15CalculatedDate: Date // 15日留存计算时间
  lastLoginDate: Date // 最后登录时间
  totalLoginDays: number // 总登录天数
  consecutiveLoginDays: number // 连续登录天数
  retentionStatus: number // 留存状态：0-计算中，1-已完成，2-异常
}

// 用户留存率统计 API
export const UserRetentionStatsApi = {
  // 查询用户留存率统计分页
  getUserRetentionStatsPage: async (params: any) => {
    return await request.get({ url: `/system/user-retention/page`, params })
  },

  // 查询用户留存率统计详情
  getUserRetentionStats: async (id: number) => {
    return await request.get({ url: `/system/user-retention/get?id=` + id })
  },

  // 新增用户留存率统计
  createUserRetentionStats: async (data: UserRetentionStatsVO) => {
    return await request.post({ url: `/system/user-retention/create`, data })
  },

  // 修改用户留存率统计
  updateUserRetentionStats: async (data: UserRetentionStatsVO) => {
    return await request.put({ url: `/system/user-retention/update`, data })
  },

  // 删除用户留存率统计
  deleteUserRetentionStats: async (id: number) => {
    return await request.delete({ url: `/system/user-retention/delete?id=` + id })
  },

  // 导出用户留存率统计 Excel
  exportUserRetentionStats: async (params) => {
    return await request.download({ url: `/system/user-retention-stats/export-excel`, params })
  },
}
